/*
2. 利用反射和File完成以下功能
	1.	利用Class类的forName方法得到File类
	2.	在控制台打印File类的所有构造器
	3.	通过newInstance的方法创建File对象，并创建D：\mynew.txt文件
*/

package refelct;

import java.io.File;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class MyFile {
    public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {
        Class cl=Class.forName("java.io.File");
        //获取File的所有构造器并输出
        Constructor[] con = cl.getDeclaredConstructors();
        for (Constructor c : con){
            System.out.println(c);
        }
        //获取File的一个构造器
        Constructor constructor = cl.getConstructor(String.class);
        //用上面得到构造器创建File对象
        File file = (File) constructor.newInstance("D:\\mynew.txt");
        //获取File的createNewFile方法
        Method method = cl.getMethod("createNewFile");
        //通过createNewFile方法，File对象，完成文件的创建
        method.invoke(file);

}}
